package cc.rengu.redp.bizimpl.csmc.vo;


import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import java.io.Serializable;

/**
  *	对账场景状态表 ReconSceneStat实体
  *
  * @author zhuyaping
  * @date 2019年07月30日05时45分
  *
  *	@see 
  */
  
@SuppressWarnings("serial")


@Data
public class ReconSceneStatVO implements Serializable {

    @TableId(value = "id")
    @NotBlank(message = "{required}")
    @Size(max = 32, message = "{noMoreThan}")
    private String id;

    /**
     * 机构标识
     */
    @TableField(value = "inst_id")
    @NotBlank(message = "{required}")
    @Size(max = 14, message = "{noMoreThan}")
    private String instId;

    /**
     * 对账场景标识
     */
   	@TableField(value = "recon_scene_id")
    @NotBlank(message = "{required}")
    @Size(max = 16, message = "{noMoreThan}")
    private String reconSceneId ;

    /**
     * 对账场景描述
     */
   	@TableField(value = "recon_scene_desc")
    @NotBlank(message = "{required}")
    @Size(max = 128, message = "{noMoreThan}")
    private String reconSceneDesc ;

    /**
     * 已触发的最小文件日期
     */
   	@TableField(value = "min_file_date")
    @NotBlank(message = "{required}")
    @Size(max = 8, message = "{noMoreThan}")
    private String minFileDate ;

    /**
     * 节假日是否对账
     */
   	@TableField(value = "recon_at_holday")
    @NotBlank(message = "{required}")
    @Size(max = 1, message = "{noMoreThan}")
    private String reconAtHolday ;

    /**
     * 补号表达式
     */
   	@TableField(value = "fill_expression")
    @Size(max = 2038, message = "{noMoreThan}")
    private String fillExpression ;

    /**
     * 审核状态
     */
    @TableField(value = "audit_status")
    @NotBlank(message = "{required}")
    @Size(max = 2, message = "{noMoreThan}")
    private String auditStatus ;

    /**
     * 使用状态
     */
    @TableField(value = "status")
    @NotBlank(message = "{required}")
    @Size(max = 2, message = "{noMoreThan}")
    private String status ;

    /**
     * 操作人代号
     */
    @TableField(value = "opr_id")
    @NotBlank(message = "{required}")
    @Size(max = 32, message = "{noMoreThan}")
    private String oprId ;

    /**
     * 复核人代号
     */
    @TableField(value = "audit_opr_id")
    @Size(max = 32, message = "{noMoreThan}")
    private String auditOprId ;

    /**
     * 创建时间
     */
   	@TableField(value = "create_time")
    @NotBlank(message = "{required}")
    @Size(max = 32, message = "{noMoreThan}")
    private String createTime ;

    /**
     * 修改时间
     */
   	@TableField(value = "update_time")
    @Size(max = 32, message = "{noMoreThan}")
    private String updateTime ;

    /**
     * 审核时间
     */
   	@TableField(value = "audit_time")
    @Size(max = 32, message = "{noMoreThan}")
    private String auditTime ;

    /**
     * 失败原因
     */
   	@TableField(value = "audit_refuse_reason")
    @Size(max = 512, message = "{noMoreThan}")
    private String auditRefuseReason ;

    /**
     * 备用字段1
     */
    @TableField(value = "remark1")
    @Size(max = 64, message = "{noMoreThan}")
    private String remark1 ;

    /**
     * 备用字段2
     */
    @TableField(value = "remark2")
    @Size(max = 128, message = "{noMoreThan}")
    private String remark2 ;

    /**
     *
     *  t_c_recon_scene_stat 与 t_c_recon_scene_info 通过inst_id 、 reconSceneId 一对多应关联；
     *  t_c_recon_scene_info  与 t_c_recon_sys_stat  通过 inst_id 、 recon_sys_id 一一对应关联
     *  List<ReconSceneInfoVO> 的json字符串，在controller 用requestbody无法解析 这里先放json字符串，在手动转换成List<ReconSceneInfoVO>
     */
    @TableField(exist = false)
    private String reconSceneInfoJson;

    /**
     *  t_c_recon_scene_stat 与 t_c_recon_scene_info 通过inst_id 、 reconSceneId 一对多应关联；
     *  t_c_recon_scene_info  与 t_c_recon_sys_stat  通过 inst_id 、 recon_sys_id 一一对应关联
     */
//    @TableField(exist = false)
//    private List<ReconSceneInfoVO> reconSceneInfos;


}
